package sh.service.impl;

import sh.orm.SessionFactory;
import sh.model.Cart;
import sh.model.CartItem;
import sh.service.CartItemService;
import sh.service.CartService;
import sh.util.BizException;

public class CartServiceImpl implements CartService {


	@Override
	public boolean add(Cart cart) {
		SessionFactory.getInstance().getSession().save(cart);
		return true;
	}

	@Override
	public Cart getByCartId(Long cartId){

		Cart cart =  SessionFactory.getInstance().getSession().getById(cartId , Cart.class);
		if(cart == null){
			throw new BizException("购物车不存在" + cartId);
		}
		return cart;
	}
	
	@Override
	public boolean deleteCartItem(Long cartItemId){
		return SessionFactory.getInstance().getSession().delete(cartItemId, Cart.class);
	}

	@Override
	public boolean changeQuantity(Long cartItemId,int quantity){

		CartItem cartItem = SessionFactory.getInstance().getSession().getById(cartItemId, CartItem.class);
		if(cartItem == null){
			throw new BizException("购物车中的内容不存在" + cartItemId);
		}

		cartItem.setQuantity(quantity);
		SessionFactory.getInstance().getSession().update(cartItem);
		return true;
	}

	@Override
	public boolean addCartItem(CartItem cartItem){
		CartItemService cartItemService = new CartItemServiceImpl();
		//调用cartItem的save方法保存一个购物项
		return cartItemService.add(cartItem);
	}

}
